void init_monitor(int, char *[]);
void reg_test();
void restart();
void ui_mainloop();

//include "stdio.h"//加入输出和cache的头文件
//#include "memory/cache.h"

int main(int argc, char *argv[]) {

	/* Initialize the monitor. */
	init_monitor(argc, argv);////初始化monitor：打开log文件，加载字符串表和符号表，编译正则表达式，初始化监视点结构池

	/* Test the implementation of the `CPU_state' structure. */
	reg_test();////测试寄存器结构

	/* Initialize the virtual computer system. */
	restart();//模拟“计算器系统的启动”

	/* Receive commands from user. */
	ui_mainloop();//模拟器主循环，类似GDB，等待用户输入命令。输入“c”，进入指令执行主循环cpu_exec()

	// 当测试用例运行结束时，输出总的时间计数
    //printf("Total CPU cycles: %lu\n", cnt);
	return 0;
} 
